package Dom4J;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import java.io.File;
import java.util.Iterator;

public class Dom4jDemo {
    public static void main(String[] args) {
        try {
            SAXReader saxReader=new SAXReader();

            File file=new File("D:\\T375_s2\\jsp\\mavenproject\\Ch06\\src\\main\\java\\Dom4J\\tmp.xml");
            Document document=saxReader.read(file);

            Element root=document.getRootElement();
            System.out.println("Root element:"+root.getName());

            listNodes(root);
        }catch (Exception e){
            e.printStackTrace();
        }

    }

    // 遍历当前节点下的所有节点
    public static void listNodes(Element node) {
        System.out.println("当前节点的名称：" + node.getName());
        // 获取当前节点的所有属性节点
        int size = node.attributeCount();
        for (int i = 0; i < size; i++) {
            // 获取属性节点
            org.dom4j.Attribute attribute = node.attribute(i);
            System.out.println("属性" + attribute.getName() + ":" + attribute.getValue());
        }
        // 如果当前节点内容不为空，则输出
        if (!(node.getTextTrim().equals(""))) {
            System.out.println(node.getName() + "：" + node.getText());
        }
        // 同时迭代当前节点下面的所有子节点
        // 使用递归
        Iterator<Element> iterator = node.elementIterator();
        while (iterator.hasNext()) {
            Element e = iterator.next();
            listNodes(e);
        }
    }
}
